绘制简单直方图
|
|
快速建立直方图
可以将数据框参数设定为NULL,然后向其传递一个向量:
|
|
调节组距
默认的数据被分为30组,可以通过binwidth()参数才调节:
|
|
把数据分为15组,如下所示:
|
|
有时候,直方图的外观会非常依赖于组距及组边界。现在我们将组距离设为8,同时设定分组原点(origin)参数,令组边界分别位于31、39、47等,在第二张图中,对origin参数增加4,令组边界分别位于35、43、51等,如下所示:
|
|
|
|
基于分组数据绘制分组直方图
以MASS包中的birthwt数据集为例说明:
|
|
此数据集中包括了婴儿出生体重及一系列导致出生体重过低的危险因子的数据。
|
|
修改分面标签
上图中的分布依据是smoke,此数据只有0与1两种,因此不清楚表示什么意思,因此要进行修改,如下所示:
|
|
样本数目不同时的分面
默认情况下,y轴是相同的范围,但图形会不美观,如下所示:
|
|
分面时y轴的设置
如果scales=”free”则可以单独设定各个分面的y轴标度,但这种设制只适用于y轴标度,对x轴没有影响,x轴仍然是固定的:
|
|
另外一种分面
|
|
position="identity"
避免将数据堆积在一起,如果没有,则图形如下所示: 4
|
|
绘制密度曲线图
基本绘图
用到geom_density()
|
|
如果不想绘制曲线的两侧与底部:
|
|
带宽的调整
对核密度曲线进行带宽的调整,通过参数adjust来实现:
|
|
手动添加x轴的范围
|
|
去掉密度曲线下的横线
|
|
直方图与密度曲线的叠加
|
|
基于分组数据绘制分组密度曲线
把变量smoke映射给colour
|
|
把变量smoke映射给fill
|
|
分面
|
|
直方图与密度曲线叠加的分面
|
|
绘制频数多边形
基本绘图
|
|
更改组距
|
|
箱线图
基本绘图
|
|
更改箱线图的宽度
geom_boxplot(width=0.5)参数可以更改箱子的宽度
|
|
更改异常值的点
geom_boxplot(outlier.size=5,outlier.shape=21)可以更改异常值的大小与形状:
|
|
单组箱线图的绘制
把x轴设制为1,即x轴对应的全部的数据:
|
|
上述命令类似于boxplot()
|
|
向箱线图添加槽口
槽口即notch,添加槽口的用处于在查看不同的中位数是否有差异。如果各箱线图的槽口互不重合,说明中位数有差异。
|
|
上述命令会出现notch went outside hinges. Try setting notch=FALSE.这表示中间的箱子对应的槽口的上边界溢出了箱体,由于闪出的距离较小,因此在图片中基本上看不到。
向箱线图中添加均值
用到stat_summary()函数,箱线图需要注意的是,箱线图中间的线是中位数,不是均值。对于正态分布的数据,中位数与均值会比较接近,但对于偏态分布则不同。
|
|
绘制小提琴图
小提琴图是一种对多组数据的分布进行比较的方法,使用普通的密度曲线对多组数据进行可视化时,图中的曲线会彼此干扰,因而不宜用来对多组数据的分布进行比较,而小提琴图是并排排列的,用它对多组数据分布进行比较更容易。
基础绘图
|
|
下面是密度曲线的常规绘图:
|
|
小提琴图添加中位数
|
|
保留小提琴尾部
上图中的小提琴尾部没有保留,进行了截断,可以通过trim=FALSE设置保留小提琴的尾部:
|
|
调节小提琴的平滑度
|
|
如果adjust缩小,则不平滑:
|
|
绘制Wilkinson点图
Wilkinson图中点的分组和排列取决于数据,每个点的宽度对应了最大组距。系数默认的最大组距是数据范围的1/30,可以通过binwidth参数对其进行调整。
|
|
上图中geom_dotplot()函数沿着x轴方向对数据进行分组并在y轴方向上对点进行堆积,图中各点看起来是堆积的,但受限于ggplot2的绘图设计,图形上y轴的刻度线并没有明确的含义,因此可以去掉:
去掉y轴标签的参数是scale_y_continuous(),另外 theme(axis.title.y=element_blank())主要用于移除坐标轴的标签(标签是count)。
|
|
可以通过加入参数method=”histodot”参数来设置点图的位置:
|
|
中心堆叠
|
|
基于分组数据绘制分组点图
|
|
将箱线图叠加到点图上
|
|
将箱线图放在点图旁边
|
|
绘制二维数据的图
|
|
可以用..level..
将密度映射给等高线的颜色:
|
|
将高度映射为渐变
|
|
将密度估计映射给瓦片颜色(tile)
|
|
另外一种图形:
|
|
参考资料
- 常肖楠, 邓一硕, 魏太云. R数据可视化手册[M]. 人民邮电出版社, 2014.